//
//  AppDelegate.swift
//  基于Swift的微博设计与实现
//
//  Created by 张源海 on 15/11/22.
//  Copyright © 2015年 张源海. All rights reserved.
//

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
        
        // 测试归档的用户账号
        print(UserAccountViewModel.sharedUserAccount.account)
        
        setupAppearance()
        
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        window?.backgroundColor = UIColor.redColor()
        window?.rootViewController = defaultRootViewController
        window?.makeKeyAndVisible()
        
        // 监听通知 
        
        NSNotificationCenter.defaultCenter().addObserverForName(WBSwitchRootViewControllerNotification,// 通知名称
            object: nil,// 发送通知的对象
            queue: nil) // 队列 线程
            { [weak self](notification) -> Void in
//                print(NSThread.currentThread())
//                print(notification)
                
                let vc = notification.object != nil ?
                WelcomeViewController() :
                MainViewController()
                
                // 切换控制器
                self?.window?.rootViewController = vc
                
        }
        
     
        return true
    }
    
    deinit {
        // 注销通知 - 注销指定的通知
        NSNotificationCenter.defaultCenter().removeObserver(self,   // 监听者
            name: WBSwitchRootViewControllerNotification,           // 监听的通知
            object: nil)                                            // 发送通知的对象
    }

    /// 设置全局外观 - 在很多应用程序中，都会在 AppDelegate 中设置所有需要控件的全局外观
    private func setupAppearance() {
        // 修改导航栏的全局外观 － 要在控件创建之前设置，一经设置全局有效
        UINavigationBar.appearance().tintColor = WBAppearanceTintColor
        UITabBar.appearance().tintColor = WBAppearanceTintColor
    }

}
// MARK: - 界面切换代码 

extension AppDelegate {
/// 启动根视图 控制器
    
    private var defaultRootViewController: UIViewController{
        
        // 判断是否登录 
        if UserAccountViewModel.sharedUserAccount.userLogon{
            return isNewVerSion ? NewFeatureViewController() :
           WelcomeViewController()
            
        }
        
       return MainViewController()
    }
    // 判断是否 是 新版本  
    
    private var isNewVerSion: Bool
        {
        
        // 1.当前 版本 
        let currentVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"]as!String
            
            let version = Double(currentVersion)!
            
//            print("当前版本\(version)")
            
        //  2.新版本 把当前版本保存在用户偏好 - 如果key 不存在  返回 0
            
            let sandboxVersionkey = "sandboxVersionkey"
            let sandboxVersion = NSUserDefaults.standardUserDefaults().doubleForKey(sandboxVersionkey)
//            print("之前的版本\(sandboxVersion)")
/// 保存当前的版本
            
            NSUserDefaults.standardUserDefaults().setDouble(version, forKey: sandboxVersionkey)
            
            return version > sandboxVersion
        
    }
    
}




